#===istalismanplugin===
# -*- coding: utf-8 -*-

# $Revision: 58 $
# $Author: rchiganov@gmail.com $
# $Date: 2013-12-14 19:10:32 +0000 (Sat, 14 Dec 2013) $

#---------------------------------------------------------------------------------------------------

# Склепал -=G@D=-

#---------------------------------------------------------------------------------------------------

COLOR = [u'красный',u'зеленый',u'черный',u'синий',u'белый',u'желтый',u'серый',u'оранжевый',u'фиолетовый']
PROVOD =[]
FLL = {}
FLL2 = {}

def bomb(type, source, parameters):
        botnick = get_bot_nick(source[1])
        if botnick == parameters:
                reply(type,source,u'Я тебя щас к ракете привяжу..., давай не выделуйся :-D')
                return
        if not source[1] in GROUPCHATS:
                return
        if not parameters in GROUPCHATS[source[1]]:
                reply(type,source,u'не вижу тут такого')
                return
        e = u', вам вручена бомба, на ней '
        rd = random.randrange(15,27)
        hh = random.choice(COLOR)
        d =''
        for x in COLOR:
                if len(d)<rd:
                        d +=x+' '
                        PROVOD.append(x)
                        if not parameters in FLL:
                                FLL[parameters]={'w':1}
                        else:
                                FLL[parameters]['w']+=1
        s = random.choice(PROVOD)
        FLL2[parameters]={'answ':s}
        l = unicode(FLL[parameters]['w'])
        reply(type,source,parameters+e+l+u' провода: '+d+u' выберите цвет провода который нужно перерезать, на таймере 45сек.')
        PROVOD.remove(s)
        del FLL[parameters]
        bomb_start(source[1],parameters)

def kick_bomb(groupchat, nick, reason=''):
	iq = xmpp.Iq('set')
	iq.setTo(groupchat)
	iq.setID('kick'+str(random.randrange(1000, 9999)))
	query = xmpp.Node('query')
	query.setNamespace('http://jabber.org/protocol/muc#admin')
	kick=query.addChild('item', {'nick':nick, 'role':'none'})
	kick.setTagData('reason', get_bot_nick(groupchat)+': '+reason)
	iq.addChild(node=query)
	JCON.send(iq)        

def bomb_start(groupchat,nick):
        time.sleep(45)
        if nick in FLL2 and nick in GROUPCHATS[groupchat]:
                kick_bomb(groupchat,nick,u'птыдыщь!')
                del FLL2[nick]
                
def bomb_msg ( raw, type, source, parameters ):
        if source[1] not in GROUPCHATS:
                return
        if source[2] in FLL2:
                ad = parameters.lower()
                if ad in FLL2[source[2]]['answ']:
                        msg(source[1],source[2]+u' бомба обезврежена!')
                        del FLL2[source[2]]
                        return
                else:
                        reply(type,source,u'Правильный провод был:'+ FLL2[source[2]]['answ'])
                        kick_bomb(source[1],source[2],u'птыдыщь!')
                        del FLL2[source[2]]
                        return
                
#---------------------------------------------------------------------------------------------------

register_message_handler(bomb_msg)
register_command_handler(bomb, 'бомба', [ 'мук', 'все' ], 15, 'Вручает учасникам бомбу, если перерезать не той провод будет кик, время 15 секунд', 'бомба <nick>', [ 'бомба abyba' ])

#---------------------------------------------------------------------------------------------------